第三天我們介紹了 Docker 容器,並提到容器技術最為重要的隔離環境,因為這個,讓容器得已廣泛應用,無論在開發、測試或部署,都能看到容器的應用。
今天我們來講解,容器除了隔離環境以外,還有哪些重要的特性。
容器本身並不能被移動到其他裝置或是系統,容器只會再被建立的系統上運作,直到生命週期結束為止,這段容器的誕生到結束,都會在同個裝置或系統上,我們無法將 A 系統上正在運行的 A 容器移動到 B 系統中。
容器本身是透過映像檔 (之後會介紹到,可以先把映像檔當作是一個安裝檔案) 建立而成,也就是說,先有映像檔再有容器,我們搬運容器的方式就是搬運該容器的「映像檔」。
換個方式說明上述解釋,先有 discord 安裝檔,才有 discord 應用程式可以使用,我們不可能把電腦上正在運作的 discord 應用程式丟到別台電腦上,那我要怎麼讓別台電腦也能使用 discord 應用程式,到 discord 官網下載安裝檔。
將上述 discord 安裝檔換成映像檔,discord 應用程式換成含有應用程式的容器。
所以,容器的搬運遷移特性,就是透過映像檔達成。
上面提到,容器本身是透過映像檔 (之後會介紹到,可以先把映像檔當作是一個安裝檔案) 建立而成,然而容器也可以被拿來建立成新的映像檔。
為什麼都已經有映像檔來建立容器了,幹嘛還要把容器建立成映像檔?
因為有時會因為需求關係,我們可能需要改良容器,改良完成的容器,如果想要被拿來給更多人或是更多系統使用,那就必須要將改良後的容器,轉換成映像檔,這時得到的映像檔就會是改良過後的映像檔。
當我們啟動多個互相聯繫的容器時,我們可以讓其中一種容器產生多個容器。
我們繼續沿用上一篇的 ABC 三個容器互相連結後,形成一個系統的例子。
假如我今天希望這個系統裡的 A 容器可以有三個時,這也是辦得到的。
也就是說,在這個系統中會有三個 A 容器以及 B、C 各一個容器,共六個容器正在運行,且三個 A 容器彼此互不干涉。
由於容器具有上述特性,讓容器技術非常受到歡迎並廣泛運用。這也讓我們了解,容器本身只是負責提供服務,如果想讓容器有更方便的使用,必須依靠映像檔來完成。
明天我們會來嘗試動手建立並啟動容器吧。
這一系列的鐵人賽文章,都同步更新在我的部落格: https://wl02599509.github.io/